<!DOCTYPE html>
<html>
<head lang="en">
	<meta charset="UTF-8">
	<title>RegExr: Learn, Build, &amp; Test RegEx</title>

	<!-- Global Site Tag (gtag.js) - Google Analytics -->
	<script async src="https://www.googletagmanager.com/gtag/js?id=GA_TRACKING_ID"></script>
	<script>
	window.dataLayer = window.dataLayer || [];
	function gtag(){dataLayer.push(arguments)};
	gtag('js', new Date());
	gtag('config', 'UA-3579542-6');
	</script>

	<link rel="stylesheet" type="text/css" href="deploy/regexr.css?v=<%= css_version %>">

	<!-- basic meta tags -->
	<meta name="title" content="RegExr: Learn, Build, & Test RegEx" />
	<meta name="description" content="Regular expression tester with syntax highlighting, PHP / PCRE & JS Support, contextual help, cheat sheet, reference, and searchable community patterns." />

	<!-- mobile -->
	<meta id="viewport" name="viewport" content="width=device-width, initial-scale=1, user-scalable=0">

	<!-- icons -->
	<link rel="apple-touch-icon" sizes="180x180" href="/assets/icons/apple-touch-icon.png?1">
	<link rel="icon" type="image/png" sizes="32x32" href="/assets/icons/favicon-32x32.png?1">
	<link rel="icon" type="image/png" sizes="16x16" href="/assets/icons/favicon-16x16.png?1">
	<link rel="manifest" href="/assets/icons/site.webmanifest?1">
	<link rel="mask-icon" href="/assets/icons/safari-pinned-tab.svg?1" color="#70b0e0">
	<link rel="shortcut icon" href="/assets/icons/favicon.ico?1">
	<meta name="apple-mobile-web-app-title" content="RegExr">
	<meta name="application-name" content="RegExr">
	<meta name="msapplication-TileColor" content="#70b0e0">
	<meta name="msapplication-config" content="/assets/icons/browserconfig.xml">
	<meta name="theme-color" content="#70b0e0">

	<!-- social -->
	<meta property="og:image" content="https://regexr.com/assets/card.png"/>
	<meta property="og:image:width" content="1200"/>
	<meta property="og:image:height" content="630"/>
    <meta property="og:title" content="RegExr: Learn, Build, & Test RegEx"/>
    <meta property="og:description" content="RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp)."/>
    <meta property="og:url" content="https://regexr.com/"/>
    <meta property="og:site_name" content="RegExr"/>

	<meta name="twitter:card" content="summary_large_image"/>
	<meta name="twitter:site:id" content="@gskinner"/>
	<meta name="twitter:title" content="RegExr: Learn, Build, & Test RegEx"/>
	<meta name="twitter:description" content="RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp)."/>
	<meta name="twitter:image" content="https://regexr.com/assets/card.png"/>
	<meta name="twitter:url" content="https://regexr.com/" />
</head>

<body>
	<div style="display:none;">
	  <!-- inject:svg --><svg xmlns="http://www.w3.org/2000/svg"><symbol id="RegExr" viewBox="0 0 64 64"><path d="M0 0v64h64V0H0zm23.799 52.045H11.783V40.029h12.016v12.016zm29.957-22.401l-5.396 5.235-6.765-11.033L34.67 35.12l-5.396-5.235 9.744-7.328-13.046-4.188 3.785-6.604 10.711 8.617L37.65 7.739h7.57l-2.899 12.643 10.791-8.617 3.785 6.604-12.804 4.027 9.663 7.248z"/></symbol><symbol id="add" viewBox="0 0 332.07 332.08"><title>Add</title><path d="M332.07 124.49H207.59V0h-83.11v124.49H0v83.1h124.48v124.49h83.11V207.59h124.48v-83.1z"/></symbol><symbol id="alert" viewBox="0 0 584.05334 503.94666"><path d="M306.207 358.43h-30.758L258.317 216.54v-77.127h64.611v77.127zm15.277 84.222h-61.72v-59.657h61.72zM292.027.002L0 503.946h584.048z"/></symbol><symbol id="arrowleft" viewBox="0 0 14.2 21"><path d="M10.5 21l3.7-3.7-6.8-6.8 6.8-6.8L10.5 0 0 10.5z"/></symbol><symbol id="arrowright" viewBox="0 0 14.2 21"><path d="M14.2 10.5L3.7 0 0 3.7l6.8 6.8L0 17.3 3.7 21z"/></symbol><symbol id="cheatsheet" viewBox="0 0 397.42667 562.66669"><path d="M199.147 98.423c11.338 0 20.53-9.196 20.53-20.534V20.528C219.677 9.191 210.485 0 199.147 0c-11.338 0-20.528 9.19-20.528 20.528v57.361c0 11.338 9.19 20.534 20.528 20.534zm-125.806 0c11.336 0 20.529-9.196 20.529-20.534V20.528C93.87 9.191 84.677 0 73.34 0 62.003 0 52.81 9.19 52.81 20.528v57.361c0 11.338 9.192 20.534 20.53 20.534zm251.615 0c11.336 0 20.53-9.196 20.53-20.534V20.528C345.485 9.191 336.291 0 324.955 0c-11.341 0-20.532 9.19-20.532 20.528v57.361c0 11.338 9.19 20.534 20.532 20.534zm10.015 222.738H70.115v41.034H334.97zm0-138.088H70.115v41.036H334.97zm0 69.048H70.115v41.032H334.97zm29.072 277.16H175.227c-49.602 0-25.702-117.574-25.702-117.574S34.86 439.576 33.385 386.995V147.048h330.658zM360.04 22.907V52.79c3.877 6.285 6.157 13.669 6.157 21.596 0 22.784-18.469 41.246-41.246 41.246-22.779 0-41.236-18.462-41.236-41.246 0-7.927 2.273-15.306 6.15-21.59v-29.89h-55.633V52.79c3.88 6.285 6.159 13.669 6.159 21.596 0 22.784-18.468 41.246-41.246 41.246-22.78 0-41.238-18.462-41.238-41.246 0-7.927 2.276-15.306 6.149-21.59v-29.89h-55.632V52.79c3.879 6.285 6.16 13.669 6.16 21.596 0 22.784-18.47 41.246-41.245 41.246-22.781 0-41.242-18.462-41.242-41.246 0-7.927 2.278-15.306 6.152-21.59v-29.89H0v408.212l9.778 9.777 121.768 121.77h265.882V22.907H360.04" fill-rule="evenodd"/></symbol><symbol id="check" viewBox="0 0 17.4 13.8"><path d="M6.2 13.8c-.1 0-.1 0-.2-.1L0 7.8v-.4l2.3-2.2c.1-.1.2-.2.3-.2.1 0 .1 0 .1.1L5.6 8c.1.1.3.2.5.2s.4-.1.5-.2L14.5.1c.1-.1.1-.1.2-.1s.1 0 .2.1l2.5 2.3c.1.1.1.2 0 .3l-11 11c-.1.1-.2.1-.2.1z"/></symbol><symbol id="close" viewBox="0 0 18 18"><path d="M12.2 9l5.6-5.6c.2-.2.2-.6 0-.8L15.4.2c-.2-.2-.6-.2-.8 0L9 5.8 3.4.2c-.2-.2-.6-.2-.8 0L.2 2.5c-.2.2-.2.6 0 .8L5.8 9 .2 14.6c-.2.2-.2.6 0 .8l2.4 2.4c.2.2.6.2.8 0L9 12.2l5.6 5.6c.2.2.6.2.8 0l2.4-2.4c.2-.2.2-.6 0-.8L12.2 9z"/></symbol><symbol id="code" viewBox="0 0 576.67999 366"><g><path d="M0 182.996L183.007 0l62.376 62.385-120.61 120.611 120.61 120.614L183.007 366 0 182.996M331.29 303.61l120.622-120.614-96.039-96.035L331.3 62.385 393.683-.004l24.581 24.584 158.417 158.416L393.683 366l-62.394-62.39"/></g></symbol><symbol id="community" viewBox="0 0 586.49335 399.72"><g><path d="M585.785 325.27c-4.946-14.343-21.337-16.405-35.026-22.177-15.032-6.338-31.7-13.701-46.7-19.85a24159.56 24159.56 0 0 0-12.84-3.503c-5.112-3.516-10.11-15.203-12.848-21.013-2.72-.39-5.446-.779-8.172-1.167.421-8.992 5.985-9.476 8.172-16.344 1.926-6.064.202-13.933 3.257-19.539 2.116-3.896 6.91-3.924 9.305-7.26 2.174-3.03 3.606-8.32 4.282-12.028 1.234-6.781 2.31-16.062-.912-22.79-1.848-3.866-3.019-4.236-3.532-8.923-.628-5.688 1.673-24.232 1.77-28.245.235-10.406-.018-19.818-2.534-29.951 0 0-3.062-9.183-7.85-11.95l-9.554-1.64-5.906-5.474c-23.79-14.636-49.298-4.368-62.952 1.16-7.6 2.467-14.098 8.167-18.741 16.557-.15 2.782-.203 5.058-.08 6.224.065.61.132.968.165 1.144.16.304.347.603.536.927.696 1.19 1.652 2.817 2.723 5.065 6.697 13.99 4.717 30.763 2.643 42.172-1.027 5.627-3.542 16.183-8.862 23.608a26.367 26.367 0 0 1-4.472 4.803c.844 8.892 2.659 19.124 7.998 22.468.736.46 6.36 1.872 6.329 1.488.776 8.17 1.555 16.344 2.332 24.513 1.977 5.435 6.732 6.028 8.11 13.696l-6.08 1.486c-.477 1.013-1.025 2.213-1.631 3.51 12.47 5.14 25.756 10.838 38.629 16.378 8.716 3.748 17.356 7.462 25.64 10.953 3.765 1.595 7.833 3.001 12.137 4.49 17.043 5.898 38.251 13.245 46.294 36.567l.914 2.647v2.795c0 5.18.202 13.528.415 22.37.093 4.024.196 8.197.285 12.367h67.422c.254-12.765-.666-35.79-.666-45.533zM191.82 139.394c-.659-7.236 2.343-12.716 4.135-15.997.344-.636.798-1.463 1.021-1.963a209.73 209.73 0 0 1-3.32-20.953l-9.279-1.59-5.902-5.474c-23.791-14.636-49.298-4.368-62.952 1.16-19.687 6.396-32.133 34.237-23.44 75.413 1.477 7.032-3.856 10.178-3.504 14.016.762 8.39.918 28.568 8.853 33.539.734.46 6.36 1.872 6.328 1.488l2.33 24.513c1.98 5.435 6.735 6.028 8.108 13.696l-6.079 1.486c-2.73 5.81-7.732 17.497-12.84 21.013-4.28 1.165-8.566 2.335-12.842 3.503-14.999 6.149-31.668 13.512-46.705 19.85C22.047 308.865 5.66 310.927.71 325.271c0 9.742-.92 32.768-.664 45.533H67.78c.087-4.17.183-8.343.284-12.368.21-8.841.411-17.19.411-22.37v-2.794l.914-2.647c8.047-23.322 29.253-30.669 46.293-36.566 4.304-1.49 8.371-2.896 12.14-4.491 8.27-3.483 16.897-7.195 25.594-10.934 12.803-5.505 26.003-11.17 38.411-16.285a643.13 643.13 0 0 0-1.68-3.622c-2.724-.39-5.444-.779-8.175-1.167.422-8.992 5.99-9.476 8.175-16.344 1.927-6.064.2-13.933 3.256-19.539 2.117-3.896 6.91-3.924 9.304-7.26 2.17-3.03 3.605-8.32 4.28-12.028a82.05 82.05 0 0 0 .93-6.502c-12.998-11.98-14.622-35.258-15.703-51.16-.138-2.006-.26-3.812-.395-5.334"/><path d="M367.261 37.304c3.532 14.219 3.884 27.423 3.559 42.02-.132 5.63-3.363 31.648-2.487 39.623.722 6.58 2.366 7.104 4.959 12.525 4.52 9.44 3.007 22.456 1.275 31.972-.95 5.208-2.955 12.623-6.003 16.87-3.361 4.69-10.081 4.722-13.057 10.189-4.284 7.865-1.864 18.913-4.564 27.412-3.07 9.641-10.882 10.316-11.472 22.926 3.833.551 7.65 1.094 11.472 1.642 3.833 8.149 10.85 24.541 18.018 29.476 6.006 1.642 12.011 3.28 18.019 4.914 21.041 8.632 44.427 18.96 65.519 27.852 19.204 8.1 42.192 10.987 49.136 31.118 0 13.67 1.29 45.96.934 63.877H84.232c-.349-17.916.937-50.207.937-63.877 6.945-20.13 29.935-23.019 49.138-31.118 21.09-8.891 44.476-19.22 65.516-27.852 6.008-1.634 12.013-3.272 18.017-4.914 7.172-4.935 14.192-21.327 18.025-29.476l8.527-2.076c-1.935-10.763-8.601-11.596-11.381-19.22-1.087-11.462-2.18-22.935-3.27-34.403.047.545-7.842-1.43-8.876-2.076-11.126-6.979-11.353-35.281-12.422-47.052-.49-5.384 6.992-9.799 4.913-19.66-12.19-57.773 5.272-96.833 32.887-105.799 19.161-7.768 54.942-22.173 88.318-1.637l8.288 7.68 13.4 2.305c6.72 3.879 11.012 16.759 11.012 16.759"/></g></symbol><symbol id="copy" viewBox="0 0 24 24"><path d="M8 12.5V9l4 4H8.5c-.3 0-.5-.2-.5-.5zM7.5 14H12v9.5c0 .3-.2.5-.5.5H.5c-.3 0-.5-.2-.5-.5v-14c0-.3.2-.5.5-.5H7v4.5c0 .3.2.5.5.5zM14 5h6c.6 0 1-.4 1-1V3c0-.6-.5-1-1-1h-1v-.9c0-.6-.5-1.1-1-1.1h-2c-.5 0-1 .5-1 1.1V2h-1c-.5 0-1 .5-1 1v1c0 .6.5 1 1 1zm.8 11.2H13V19h1.8v-2.8zM23.5 3H22v2c0 .6-.5 1-1 1h-8c-.5 0-1-.4-1-1V3h-1.5c-.3 0-.5.2-.5.5V9l2.8 2.8h2V8l6 6-5 5h7.7c.3 0 .5-.2.5-.4V3.5c0-.3-.2-.5-.5-.5zm-4.9 11L16 11.4V13h-3v2h3v1.6l2.6-2.6z"/></symbol><symbol id="delete" viewBox="0 0 509.12 586.40002"><path d="M330.056 72.69H179.06V60.2c.013-10.572 8.588-19.14 19.164-19.167h112.67c10.57.027 19.138 8.595 19.162 19.167zm150.703 0h-109.67V60.2C371.075 26.943 344.144.01 310.893.007H198.224c-33.26.002-60.192 26.936-60.208 60.193v12.49H28.365C12.703 72.69 0 85.39 0 101.054v68.451h509.121v-68.45c0-15.663-12.701-28.363-28.362-28.363zM79.133 586.4h350.856l33.647-383.51H45.486L79.134 586.4"/></symbol><symbol id="distractor" viewBox="0 0 23.9 23.9"><title>Artboard 1</title><path d="M16.5 19.9l.9-.6 2.1 2.1c-.6.5-1.2.9-1.9 1.2l-1.1-2.7zm-9.9 2.9L7.8 20c-.6-.3-1.1-.7-1.6-1.1L4 21c.8.7 1.7 1.3 2.6 1.8zm14.7-3.2c.4-.5.8-1 1.1-1.6l-2.8-1.2c-.1.2-.3.4-.4.6l2.1 2.2zM13 24c.9-.1 1.7-.2 2.5-.5l-1.2-2.8c-.4.2-.8.3-1.3.3v3zm-4.8-.6c.9.3 1.8.5 2.8.6v-3c-.6-.1-1.1-.2-1.6-.3l-1.2 2.7zM18.5 2C16.5.7 14.3.1 12 0h-.5C5 .1-.1 5.5 0 12c0 2.9 1 5.8 3 8l2.2-2.1C3.8 16.3 3 14.2 3 12.1c0-5 4-9 9-9 1.7 0 3.4.5 4.8 1.4m6.7 11.1l.3-1.5h-3s-.1.1-.1.3l2.8 1.2z"/></symbol><symbol id="dropdown" viewBox="0 0 5 5"><path d="M0 0h5L2.5 5z"/></symbol><symbol id="facebook" viewBox="0 0 24 24"><path d="M24 2.5v19c0 1.4-1.1 2.5-2.5 2.5H16v-9h3l.8-4H16l.1-2c0-1 .3-1.6 1.6-1.6h2.1l.5-3.6s-2.3-.3-3.6-.3c-3 0-4.7 2-4.7 5.1V11H9v4h3v9H2.5C1.1 24 0 22.9 0 21.5v-19C0 1.1 1.1 0 2.5 0h19C22.9 0 24 1.1 24 2.5z"/></symbol><symbol id="favorites" viewBox="0 0 582.01331 501.74667"><path d="M496.268 14.292C421.636-20.88 332.587 11.12 297.425 85.779c-2.441 5.18-4.561 11.689-6.417 19.237-1.855-7.548-3.979-14.057-6.42-19.237C249.424 11.12 160.398-20.88 85.742 14.292 11.13 49.453-20.883 138.455 14.28 213.109c35.158 74.652 276.67 288.638 276.67 288.638l.055-.686.058.686S532.576 287.76 567.732 213.109c35.164-74.654 3.196-163.656-71.464-198.817" fill-rule="evenodd"/></symbol><symbol id="flags" viewBox="0 0 581.47998 586.65332"><path d="M457.855 46.08s-83.258 113.95-206.438-9.227v.226C163.571-53.06 87.276 49.48 87.276 49.48l123.627 296.931s51.352-145.863 206.436 9.224v-.228c87.844 90.13 164.144-12.407 164.144-12.407zM0 82.587l208.485 504.066 58.624-24.245L58.615 58.328 0 82.587"/></symbol><symbol id="github" viewBox="0 0 24 24"><path d="M21.5 0h-19C1.1 0 0 1.1 0 2.5v19C0 22.9 1.1 24 2.5 24h19c1.4 0 2.5-1.1 2.5-2.5v-19C24 1.1 22.9 0 21.5 0zM10 16H8v-3h2v3zm3 1h-2v-1h2v1zm3-1h-2v-3h2v3zm-1-9l4-2 .1 4c.7.9.9 1.8.9 3v1c0 1.8-1 3.4-2.5 4.3.3-.3.5-.8.5-1.3v-2c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v2c0 .5.2 1 .5 1.3C5 16.4 4 14.8 4 13v-1c0-1.1.4-2.2 1-3V5l4 2h6z"/></symbol><symbol id="google" viewBox="0 0 24 24"><path d="M21.5 0h-19C1.1 0 0 1.1 0 2.5v19C0 22.9 1.1 24 2.5 24h19c1.4 0 2.5-1.1 2.5-2.5v-19C24 1.1 22.9 0 21.5 0zm-9.4 19.2c-4 0-7.2-3.2-7.2-7.2s3.2-7.2 7.2-7.2c1.8 0 3.5.7 4.8 1.9l.2.1L14.9 9l-.1-.1c-.5-.5-1.3-1-2.7-1C9.8 7.8 8 9.7 8 12s1.8 4 4.1 4c2.5 0 3.5-1.9 3.7-2.8h-4v-2.4h6.9c.1 0 .3 0 .3 1.4 0 4.1-2.8 7-6.9 7z"/></symbol><symbol id="help" viewBox="0 0 24.5 24.5"><path d="M14.3 19.8c0 .3-.2.5-.5.5h-3c-.3 0-.5-.2-.5-.5v-3c0-.3.2-.5.5-.5h3c.3 0 .5.2.5.5v3zM12.2 0C5.5 0 0 5.5 0 12.2s5.5 12.2 12.2 12.2S24.5 19 24.5 12.2 19 0 12.2 0zm2.9 12.1c-1 .6-1.3 1.2-1.3 2.4 0 .1-.1.2-.2.2H11c-.1 0-.2-.2-.2-.2v-1c0-1.1.6-2 1.8-2.9.1-.1 1-.6 1-1.4-.1-.7-.6-1.2-1.3-1.2-1 0-1.6.5-1.6 1.5 0 .1-.1.2-.2.2H7.7c-.1 0-.1 0-.2-.1 0 0-.1-.1-.1-.2.1-2.7 1.9-4.3 4.8-4.3 2.2 0 4.6 1.2 4.6 3.9.1 1.9-.3 2.2-1.7 3.1z"/></symbol><symbol id="info" viewBox="0 0 270.76001 535.79999"><path d="M147.241 65.433c0-35.989 31.078-65.43 67.076-65.43 32.742 0 56.448 22.072 56.448 55.621 0 37.644-31.07 65.459-67.885 65.459-33.533 0-55.639-22.102-55.639-55.65zm-44.166 161.148c5.723-14.713-1.643-22.072-8.19-22.072-30.25 0-69.54 71.166-84.231 71.166C4.906 275.675 0 269.932 0 265.028c0-14.724 35.988-49.073 46.643-59.71 32.704-31.082 75.254-54.806 122.704-54.806 35.157 0 72.8 21.26 43.352 100.628l-58.91 159.492c-4.886 12.273-13.886 32.741-13.886 45.823 0 5.72 3.25 11.46 9.796 11.46 24.529 0 69.541-69.546 80.997-69.546 4.081 0 9.801 4.9 9.801 12.263 0 23.724-95.694 125.168-178.325 125.168-29.45 0-49.898-13.895-49.898-44.985 0-39.255 27.807-106.342 33.56-120.259l57.24-143.975" fill-rule="evenodd"/></symbol><symbol id="link" viewBox="0 0 533.8667 565.66669"><g><path d="M288.607 391.817c-36.422.042-72.928-14.228-100.431-41.757l-4.355-4.355 62.379-62.398 4.361 4.356c10.739 10.714 24.312 15.886 38.046 15.922 14.386-.057 28.116-5.238 38.83-15.922l102.268-102.268c10.699-10.734 15.879-24.408 15.927-38.527-.048-13.993-5.22-27.63-15.913-38.359l-4.358-4.354c-10.732-10.7-24.377-15.871-38.436-15.924-14.066.053-27.713 5.224-38.446 15.924l-42.05 42.057c-17.221 17.23-45.156 17.23-62.384 0-17.232-17.225-17.232-45.156-.006-62.384l42.056-42.059C313.82 14.007 350.576-.045 386.925 0c36.342-.045 73.094 14.007 100.824 41.77l4.355 4.35c27.71 27.683 41.81 64.388 41.759 100.748.05 36.333-13.966 73.13-41.767 100.912L389.824 350.047c-27.887 27.922-64.784 41.77-100.99 41.77h-.227"/><path d="M146.55 565.667c-36.41.036-72.925-14.227-100.43-41.765l-4.352-4.347C13.934 491.75-.05 454.916 0 418.588c-.044-36.359 14.075-73.043 41.768-100.69L144.04 215.624c27.725-27.762 64.481-41.822 100.83-41.77 28.495-.041 57.24 8.592 81.689 25.698a44.063 44.063 0 0 1 11.226 8.157l7.908 7.907 4.355 4.35h-.001l.001.004-62.376 62.398-.005-.007-4.355-4.356c-10.736-10.699-24.38-15.87-38.443-15.923-14.06.054-27.706 5.224-38.441 15.923L104.146 380.288c-10.695 10.73-15.867 24.348-15.912 38.3.05 14.17 5.23 27.848 15.917 38.576l4.357 4.346c10.74 10.718 24.314 15.885 38.043 15.922 14.392-.057 28.122-5.237 38.838-15.922l44.068-44.067c17.231-17.22 45.163-17.22 62.384.008 17.228 17.222 17.228 45.15 0 62.382l-44.069 44.069c-27.885 27.915-64.79 41.765-100.995 41.765h-.226"/></g></symbol><symbol id="load" viewBox="0 0 537 488.60001"><path d="M0 329.22h241.005V488.6l295.996-244.299L241.005.003v159.384H0V329.22"/></symbol><symbol id="menu" viewBox="0 0 542.18665 461.79999"><g><path d="M184.508 112.461V1.656h357.677v110.805H184.508M184.508 287.127V176.329h357.679v110.798H184.508M184.508 461.8V351h357.681v110.8H184.508M116.022 58.001c0 32.044-25.974 58.011-58.012 58.011C25.973 116.012 0 90.045 0 58.002 0 25.961 25.973-.005 58.01-.005c32.038 0 58.012 25.967 58.012 58.005M116.022 224.827c0 32.037-25.974 58.01-58.012 58.01-32.037 0-58.01-25.973-58.01-58.01 0-32.036 25.973-58.011 58.01-58.011 32.038 0 58.012 25.975 58.012 58.01M116.022 403.357c0 32.038-25.974 58.011-58.012 58.011-32.037 0-58.01-25.973-58.01-58.01 0-32.04 25.973-58.01 58.01-58.01 32.038 0 58.012 25.97 58.012 58.01"/></g></symbol><symbol id="moon" viewBox="0 0 20.9 23.7"><path d="M20.7 19.9c-2.1 2.3-5 3.7-8.4 3.9-6.6.1-12.1-5-12.3-11.6C-.2 5.7 5 .2 11.5 0h1.2c.4 0 .5.2.2.4-3 1.9-5 5.3-4.8 9.1.2 5.8 5 10.3 10.8 10.1.5 0 1-.1 1.5-.2.5 0 .6.1.3.5z"/></symbol><symbol id="private" viewBox="0 0 574.18665 311.05334"><path d="M287.083 263.93c-60.782 0-110.062-49.234-110.062-110.094 0-60.783 49.28-110.047 110.062-110.047 60.816 0 110.094 49.264 110.094 110.047 0 60.86-49.278 110.093-110.094 110.093zm0-263.937C144.045-.007 0 155.524 0 155.524s144.045 155.53 287.083 155.53c143.058 0 287.105-155.53 287.105-155.53S430.141-.006 287.083-.006zm0 99.923c-29.74 0-53.934 24.19-53.934 53.92 0 29.755 24.194 53.964 53.934 53.964 29.758 0 53.965-24.21 53.965-53.964 0-29.73-24.207-53.92-53.965-53.92"/></symbol><symbol id="reference" viewBox="0 0 474.32001 579.58667"><path d="M437.895 478.072l-30.206 1.404V104.79L72.372 78.705h-.765c-11.634.048-21.912-3.129-28.036-7.066-3.07-1.923-5.058-3.971-6.035-5.454-.985-1.532-1.093-2.282-1.117-3.002.024-.719.132-1.466 1.117-2.999 1.423-2.235 5.303-5.675 11.365-8.228 6.02-2.58 13.982-4.303 22.706-4.295h.168l366.12-10.214zM332.619 244.7L91.36 225.373l3.271-40.904 241.26 19.322zm-61.968 97.784l-139.237-10.823 3.178-40.912 139.237 10.83zM71.32 11.244c-17.75.096-34.054 4.461-47.192 12.69-6.588 4.174-12.434 9.4-16.85 15.989C2.858 46.464-.021 54.592 0 63.183v438.27c-.02 8.596 2.858 16.727 7.279 23.264 6.674 9.866 16.346 16.727 27.318 21.454 10.801 4.594 23.083 7.108 36.163 7.218l336.93 26.198v-63.65l66.633-3.102V.005L71.32 11.244"/></symbol><symbol id="search" viewBox="0 0 594.5733 594.10669"><path d="M234.513 411.179c-96.785-.622-175.027-79.878-174.416-176.67.62-96.172 79.352-174.416 175.5-174.421l1.174.003c46.889.294 90.857 18.832 123.8 52.198 32.94 33.367 50.918 77.57 50.616 124.468-.296 46.687-18.703 90.524-51.823 123.42-33.112 32.894-77.04 51.003-123.69 51.003zm351.942 89.513l-3.588-3.585.008-.003-143.352-143.363c19.917-34.312 31.488-74.086 31.76-116.601C472.117 106.987 367.296.816 237.152-.003c-.525-.002-1.035-.002-1.557-.002C106.18 0 .838 104.516.005 234.125-.82 364.271 104.003 470.44 234.133 471.271c.519.002 1.022.005 1.54.005 43.258 0 83.795-11.72 118.664-32.1l143.226 143.241.013-.012 3.581 3.58c10.834 10.832 28.391 10.823 39.219 0l46.079-46.072c10.822-10.822 10.829-28.39 0-39.22"/></symbol><symbol id="share" viewBox="0 0 572.98669 572.98669"><path d="M286.499 377.804c-50.427 0-91.304-40.877-91.304-91.305 0-50.426 40.877-91.308 91.304-91.308 50.424 0 91.3 40.882 91.3 91.308 0 50.428-40.876 91.305-91.3 91.305zm286.486-60.085V252.52l-9.208-3.008-69.8-22.788-18.626-44.97 35.801-75.752-46.115-46.107-8.634 4.384-65.467 33.25L345.975 78.9 317.71.007h-65.199l-3.004 9.216-22.788 69.802-44.95 18.623-75.778-35.799-46.097 46.107 4.382 8.632 33.244 65.488-18.612 44.941L0 255.27v65.211l9.218 3.004 69.802 22.792 18.622 44.957-35.793 75.76 46.09 46.117 8.646-4.393 65.47-33.24 44.958 18.623 28.251 78.887h65.204l3.012-9.21 22.792-69.8 44.961-18.622 75.758 35.806 46.112-46.12-4.382-8.64-33.249-65.458 18.625-44.967 78.888-28.257"/></symbol><symbol id="thumb" viewBox="0 0 393.4 552.9"><g id="g10" transform="matrix(1.33333 0 0 -1.33333 0 552.893)"><g id="g12" transform="scale(.1)"><path id="path14" class="st0" d="M2950.6 1619.8c0 184.3-34.3 333.6-218.6 333.6h-151.7c138.8 35.3 167 180.6 167 354.9 0 200.7-37.3 363.4-237.9 363.4h-568c-380.8 18.5 97.5 142 97.5 901.8 0 645.1-686.3 570.6-686.3 570.6v-400.4c-104.7-530.8-595.9-912.7-839.9-1073.1C199.4 2548.5 0 2262.6 0 1902.2v-982C0 411.9 412 0 920.2 0h1543c180.9 0 214.6 146.7 214.6 327.6 0 155-25.1 284.4-145.6 318.5H2685c177.9 0 211 144.2 211 322 0 161.4-27.6 294.6-165.4 318h1.4c184.3 0 218.6 149.5 218.6 333.7"/></g></g></symbol><symbol id="user" viewBox="0 0 580.79999 538.09332"><path d="M392.913 51.767c4.902 19.732 5.392 21.374 4.936 41.633-.184 7.807-4.666 43.915-3.448 54.99 1.002 9.135 3.28 9.86 6.883 17.387 6.273 13.099 4.173 31.168 1.767 44.376-1.318 7.228-4.102 17.515-8.331 23.415-4.663 6.501-13.997 6.55-18.123 14.136-5.945 10.927-2.588 26.256-6.336 38.053-4.257 13.378-15.1 14.318-15.917 31.823 5.315.75 10.616 1.512 15.917 2.27 5.322 11.314 15.063 34.07 25.012 40.918 8.334 2.273 16.674 4.548 25.003 6.817 29.21 11.976 61.668 26.31 90.939 38.65 26.654 11.245 58.569 15.253 68.202 43.196 0 18.972 1.79 63.797 1.3 88.662H.085c-.49-24.865 1.298-69.69 1.298-88.662 9.634-27.943 41.547-31.951 68.202-43.196 29.27-12.34 61.729-26.674 90.935-38.65 8.333-2.269 16.675-4.544 25.005-6.817 9.947-6.848 19.692-29.604 25.012-40.917l11.836-2.878c-2.688-14.941-11.938-16.104-15.792-26.68-1.512-15.908-3.025-31.826-4.545-47.74.073.75-10.884-1.997-12.317-2.894-15.44-9.676-15.755-48.964-17.242-65.304-.676-7.47 9.712-13.591 6.826-27.287-16.922-80.184 7.314-117.71 45.638-130.153 26.6-10.778 76.264-30.764 122.588-2.271L359.025 25.3l18.603 3.205c9.332 5.388 15.285 23.262 15.285 23.262"/></symbol></svg><!-- endinject -->
	</div>
	<div class="container">
		<header class="header">
			<svg class="icon logo inline"><use xlink:href="#RegExr"></use></svg>
			<div class="settings">
				<span class="name">Untitled Pattern</span>
				<svg class="icon share"><use xlink:href="#share"><title>Pattern Settings</title></use></svg>
				</div>
			</ul>
			<ul class="file">
				<li class="save disabled"><span class="action">Save</span> <span class="savekey">(--)</span></li>
				<li class="new">New</li>
			</ul>
			<ul class="etc">
				<li class="button theme"><svg class="icon moon inline"><use xlink:href="#moon"><title>Dark UI</title></use></svg></li>
				<li class="by">by <a href="http://gskinner.com">gskinner</a></li>
				<li class="github"><a href="http://github.com/gskinner/regexr/">GitHub</a></li>
				<li class="signin"><a>
					<svg class="icon user inline"><use xlink:href="#user"></use></svg>
					<span class="label">Sign In</span>
				</a></li>
			</ul>
		</header>
		
		<div class="app">
			<aside class="sidebar">
				<div class="full">
					<header class="row">
						<div class="backrow">
							<svg class="icon back"><use xlink:href="#menu"></use></svg>
							<h1 class="label">Menu</h1>
						</div>
						<svg class="small icon close"><use xlink:href="#close"><title>Minimize menu</title></use></svg>
					</header>
					<header class="search row">
						<input type="text" placeholder="search">
						<svg class="icon distractor anim-spin"><use xlink:href="#distractor"></use></svg>
						<svg class="icon search"><use xlink:href="#search"></use></svg>
					</header>
					<ul class="list"></ul>
					<div class="content">
						RegExr is an online tool to <b>learn</b>, <b>build</b>, &amp; <b>test</b> Regular Expressions (RegEx / RegExp).
						<hr>
						<ul>
							<li>Supports <b>JavaScript</b> &amp; <b>PHP/PCRE</b> RegEx.</li>
							<li>Results update in <b>real-time</b> as you type.</li>
							<li><b>Roll over</b> a match or expression for details.</li>
							<li><b>Save</b> &amp; share expressions with others.</li>
							<li>Use <b>Tools</b> to explore your results.</li>
							<li>Full <b>RegEx Reference</b> with help &amp; examples.</li>
							<li><b>Undo</b> &amp; <b>Redo</b> with {{getCtrlKey()}}-Z / Y in editors.</li>
							<li>Search for &amp; rate <b>Community Patterns</b>.</li>
						</ul>
					</div>
					<div class="hello">
						<div class="native-js">
							<a href="#native_link#" class="native-flex">
								<style>
									.native-js {
										background: linear-gradient(-30deg, #native_bg_color#E5, #native_bg_color#E5 45%, #native_bg_color# 45%) #fff;
									}
						
									.native-details {
										color: #native_color# !important;
									}
						
									.native-details:hover {
										color: #native_color_hover# !important;
									}
								</style>
								<div class="native-main">
									<img class="native-img" src="#native_logo#">
									<div class="native-details">
										<span class="native-company">Sponsored by #native_company#</span>
										<span class="native-desc">#native_desc#</span>
									</div>
								</div>
							</a>
						</div>
						<div class="noad">
							<b>Want to support RegExr?</b> Consider disabling your ad-blocker for this domain. We'll show a non-intrusive, dev-oriented ad in this area.
						</div>
					</div>
				</div>
				
				<div class="min">
					<ul class="list"></ul>
				</div>
			</aside>
			
			<div class="doc">
				<div class="blocker"></div>
				<section class="expression">
					<header>
						<h1>Expression</h1>
						<div class="controlbar">
							<div class="button flavor">
								<svg class="icon"><use xlink:href="#code"></use></svg>
								<span class="label">JavaScript</span>
								<svg class="icon dropdown"><use xlink:href="#dropdown"></use></svg>
							</div>
							<div class="button flags">
								<svg class="icon"><use xlink:href="#flags"></use></svg>
								<span class="label">Flags</span>
								<svg class="icon dropdown"><use xlink:href="#dropdown"></use></svg>
							</div>
						</div>
					</header>
					<article class="editor"><svg class="icon alert"><use xlink:href="#alert"></use></svg></article>
				</section>
				
				<section class="text">
					<header>
						<h1>Text</h1>
						<div class="controlbar">
							<div class="control result">No match.</div>
						</div>
					</header>
					<article class="editor multiline"><div class="pad">
<textarea>
RegExr was created by gskinner.com, and is proudly hosted by Media Temple.

Edit the Expression & Text to see matches. Roll over matches or the expression for details. PCRE & JavaScript flavors of RegEx are supported.

The side bar includes a Cheatsheet, full Reference, and Help. You can also Save & Share with the Community, and view patterns you create or favorite in My Patterns.

Explore results with the Tools below. Replace & List output custom results. Details lists capture groups. Explain describes your expression in plain English.
</textarea>
					</div></article>
				</section>
				
				<section class="tools">
					<header>
						<h1>Tools</h1>
						<ul class="segcontrol toollist"></ul>
						<svg class="small icon max"><use xlink:href="#close"><title>Toggle tools panel</title></use></svg>
					</header>
					<article>
						<svg class="icon help"><use xlink:href="#help"></use></svg>
						<div class="inputtool">
							<div class="editor"></div>
							<div class="result"></div>
						</div>
						<div class="content"></div>
					</article>
				</section>
			</div>
		</div>
	</div>
	<div id="library" style="display:none;">
		
		<div id="tooltip" class="tooltip">
			<svg class="tip"><use xlink:href="#dropdown"></use></svg>
			<div class="content"></div>
		</div>
		
		<div id="tooltip-flavor">
			<header>
				<h1>RegEx Engine</h1>
				<svg class="icon help"><use xlink:href="#help"></use></svg>
			</header>
			<hr>
			<ul class="list"></ul>
		</div>
		
		<div id="tooltip-flags">
			<header>
				<h1>Expression Flags</h1>
				<svg class="icon help"><use xlink:href="#help"></use></svg>
			</header>
			<hr>
			<ul class="list"></ul>
		</div>
		
		<div id="tooltip-signin">
			<div class="signin">
				<header>
					<h1>Sign In</h1>
					<svg class="icon help"><use xlink:href="#help"></use></svg>
				</header>
				<hr>
				<div class="content">
					Sign in to persist favorites &amp; patterns. Click the help icon above for info.
					<br><br>
					Any unsaved changes will be lost. Saved patterns &amp; favorites will be migrated to your account.
				</div>
				<hr>
				<ul class="list"></ul>
			</div>
			<div class="signout">
				<header>
					<h1>Sign Out</h1>
				</header>
				<hr>
				<div class="content">
					You are currently signed in as <b class="username">--</b> via <b class="type">--</b>.
					<br><br>
					<span class="signoutbtn">Sign out.</span>
				</div>
			</div>
			<div class="distract">
				<svg class="icon distractor anim-spin"><use xlink:href="#distractor"></use></svg>
				One moment...
			</div>
		</div>
		
		<div id="cheatsheet">
			<table class="cheatsheet">
				<tr><th colspan="2" data-id="charclasses">Character classes</th></tr>
				<tr><td>.</td><td>any character except newline</td></tr>
				<tr><td>\w  \d  \s</td><td>word, digit, whitespace</td></tr>
				<tr><td>\W  \D  \S</td><td>not word, digit, whitespace</td></tr>
				<tr><td>[abc]</td><td>any of a, b, or c</td></tr>
				<tr><td>[^abc]</td><td>not a, b, or c</td></tr>
				<tr><td>[a-g]</td><td>character between a & g</td></tr>
	
				<tr><th colspan="2" data-id="anchors">Anchors</th></tr>
				<tr><td>^abc$</td><td>start / end of the string</td></tr>
				<tr><td>\b  \B</td><td>word, not-word boundary</td></tr>
	
				<tr><th colspan="2" data-id="escchars">Escaped characters</th></tr>
				<tr><td>\.  \*  \\</td><td>escaped special characters</td></tr>
				<tr><td>\t  \n  \r</td><td>tab, linefeed, carriage return</td></tr>
				<!-- <tr><td>\u00A9</td><td>unicode escaped &copy;</td></tr> -->
	
				<tr><th colspan="2" data-id="groups">Groups & Lookaround</th></tr>
				<tr><td>(abc)</td><td>capture group</td></tr>
				<tr><td>\1</td><td>backreference to group #1</td></tr>
				<tr><td>(?:abc)</td><td>non-capturing group</td></tr>
				<tr><td>(?=abc)</td><td>positive lookahead</td></tr>
				<tr><td>(?!abc)</td><td>negative lookahead</td></tr>
	
				<tr><th colspan="2" data-id="quants">Quantifiers & Alternation</th></tr>
				<tr><td>a*  a+  a?</td><td>0 or more, 1 or more, 0 or 1</td></tr>
				<tr><td>a{5} a{2,}</td><td>exactly five, two or more</td></tr>
				<tr><td>a{1,3}</td><td>between one & three</td></tr>
				<tr><td>a+? a{2,}?</td><td>match as few as possible</td></tr>
				<tr><td>ab|cd</td><td>match ab or cd</td></tr>
			</table>
		</div>
		
		<div id="community" class="community">
			<header>
				<div class="label name"></div>
				<div>
					<svg class="icon favorites"><use xlink:href="#favorites"><title>Favorite (add to My Patterns)</title></use></svg>
					<svg class="icon share"><use xlink:href="#share"><title>Load & open pattern settings</title></use></svg>
				</div>
			</header>
			<div class="actions list">
				<div class="link row">
					<svg class="icon link"><use xlink:href="#link"></use></svg>
					<div class="label">Load</div>
					<div class="url">--</div>
					<svg class="icon copy"><use xlink:href="#copy"><title>Copy to clipboard</title></use></svg>
				</div>
				<div class="rate inactive row">
					<svg class="icon thumb"><use xlink:href="#thumb"></use></svg>
					<div class="label">Rate</div>
					<svg class="icon rate thumbdown"><use xlink:href="#thumb"><title>Rate pattern</title></use></svg>
					<span class="rating">--</span>
					<svg class="icon rate thumbup"><use xlink:href="#thumb"><title>Rate pattern</title></use></svg>
				</div>
			</div>
			<div class="desc"></div>
			<div class="author"></div>
			<hr>
		</div>
		
		<div id="share">
			<!-- holds all the elements used in the Save & Share section -->
			<div id="share_main">
				<div class="signin row">
					<svg class="icon user"><use xlink:href="#user"></use></svg>
					<div class="label signin"><a>Sign in</a> to avoid losing your patterns!</div>
					<div class="label signout">Signed in as <b class="username">--</b></div>
				</div>
				<div class="save row">
					<div class="message">Saving will create a shareable public link.</div>
					<div class="buttons row">
						<div class="fork button">Fork</div>
						<div class="save button default">Save</div>
						<div class="status"></div>
					</div>
				</div>
				<div class="info">
					<div class="info row">
						<svg class="icon info"><use xlink:href="#info"></use></svg>
						<div class="label">Optional info</div>
					</div>
					<div class="inputs">
						<input class="name" type="text" placeholder="pattern name (recommended)" maxlength="30">
						<input class="author" type="text" placeholder="author name" maxlength="20">
						<textarea class="description" rows="4" placeholder="description" maxlength="250"></textarea>
						<input class="keywords" type="text" placeholder="keywords for search" maxlength="50">
					</div>
				</div>
				<div class="actions list">
					<div class="link row">
						<svg class="icon link"><use xlink:href="#link"></use></svg>
						<div class="label">Shareable link</div>
						<div class="url"></div>
						<svg class="icon copy"><use xlink:href="#copy"><title>Copy to clipboard</title></use></svg>
					</div>
					<div class="private row">
						<svg class="icon private"><use xlink:href="#private"></use></svg>
						<div class="label">Private</div>
						<div class="status"></div>
						<svg class="icon check"><use xlink:href="#check"></use></svg>
					</div>
					<div class="favorites row">
						<svg class="icon favorites"><use xlink:href="#favorites"></use></svg>
						<div class="label">Favorite</div>
						<div class="status"></div>
						<svg class="icon check"><use xlink:href="#check"></use></svg>
					</div>
					<div class="community row">
						<svg class="icon community"><use xlink:href="#community"></use></svg>
						<div class="label">Share with the Community</div>
						<svg class="icon arrow"><use xlink:href="#arrowright"></use></svg>
					</div>
					<div class="delete row">
						<svg class="icon delete"><use xlink:href="#delete"></use></svg>
						<div class="label">Delete</div>
						<div class="status"></div>
					</div>
				</div>
			</div>
			
			<div id="share_community">
				Edit or add extra information to help people find this expression.
				<div class="inputs">
					<input class="name" type="text" placeholder="pattern name (required)" maxlength="30">
					<input class="author" type="text" placeholder="author name" maxlength="20">
					<textarea class="description" rows="3" placeholder="description" maxlength="250"></textarea>
					<input class="keywords" type="text" placeholder="keywords for search" maxlength="50">
				</div>
				<div class="buttons">
					<div class="button cancel">Cancel</div>
					<div class="button share default"><svg class="icon community"><use xlink:href="#community"></use></svg> Share</div>
					<div class="status"></div>
				</div>
				This will share a public copy of this Expression (including Text) with the Community.
				<b>You will not be able to edit or delete the shared copy.</b>
			</div>
		</div>
	</div>
	
	<script src="deploy/regexr.js?v=<%= js_version %>"></script>
	<script src="dev/lib/onigasm/index.js"></script>
	<script id="phpinject">
		/** INJECTED BY PHP **/
		// first param false indicates a local init.
		// php passes either a pattern object, or null.

		regexr.init(false, {
			// local test user:
			userId: 111,
			authenticated: true,
			username: "gskinner",
			author: "grantskinner",
			type: "temporary"
		}, {
			"PCREVersion": "8.38 2015-11-23",
			"PHPVersion": "7.0.22-0ubuntu0.16.04.1"
		});
	</script>
</body>
</html>
